#pragma once

#include "Machine.h"

class CCPU
{
public:
	CMachine *MachinePtr;
public:
	CCPU();
	virtual ~CCPU();
	virtual void SetMachine(CMachine *m);
	virtual u32 Execute(u32 c) = 0;
	virtual void Reset() = 0;
	virtual void NMI() = 0;
	virtual void IRQ() = 0;
	virtual u32 Disassemble(char *dest,u32 p) = 0;
	virtual char *GenerateRegNames(char *dest) = 0;
	virtual char *GenerateRegData(char *dest) = 0;
//hmm
	virtual u32 GetPC() = 0;
	virtual u32 GetCycle() = 0;
};
